package com.users.rn.rncommon.network.utils;

import android.content.Context;
import android.content.SharedPreferences;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

/**
 * @Description:
 * @Author: bluce
 * @Date: 2020/12/3 13:54
 */
public final class SharePreferenceUtils {

//    public static void save(Context context, @NonNull String fileName, @NonNull String key, @NonNull String value) {
//        getPreference(context, fileName)
//                .edit()
//                .putString(key, value)
//                .apply();
//    }
//
//    public static void save(Context context, @NonNull String fileName, @NonNull String key, @NonNull boolean value) {
//        getPreference(context, fileName)
//                .edit()
//                .putBoolean(key, value)
//                .apply();
//    }

    public static synchronized SharedPreferences.Editor edit(Context context, @Nullable String fileName) {
        return getPreference(context, fileName).edit();
    }

    public static String getString(Context context, @NonNull String fileName, @NonNull String key) {
        return getString(context, fileName, key, null);
    }

    public static String getString(Context context, @NonNull String fileName, @NonNull String key, String defaultValue) {
        return getPreference(context, fileName).getString(key, defaultValue);
    }

    public static boolean getBoolean(Context context, @NonNull String fileName, @NonNull String key) {
        return getBoolean(context, fileName, key, false);
    }

    public static boolean getBoolean(Context context, @NonNull String fileName, @NonNull String key, boolean defaultValue) {
        return getPreference(context, fileName).getBoolean(key, defaultValue);
    }

    public static long getLong(Context context, @NonNull String fileName, @NonNull String key, long defaultValue) {
        return getPreference(context, fileName).getLong(key, defaultValue);
    }


    public static SharedPreferences getPreference(Context context, @NonNull String fileName) {
        return context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    }
}
